package com.example.kotlinstudy.adapter

import android.annotation.SuppressLint
import android.view.View
import android.view.ViewGroup
import android.widget.BaseAdapter
import com.example.kotlinstudy.R


// 城市列表适配器类，继承自BaseAdapter
class CityAdapter() : BaseAdapter() {

    data class CityData(val icon: Int, val text: String, var intro: String, val ikun: Int)

    // 创建城市数据列表，包含多个城市信息
    private val cityList = listOf<CityData>(
        CityData(
            R.drawable.bj,
            "北京",
            "中国首都，历史悠久，政治文化中心，古韵今风交融。",
            R.drawable.ikun
        ),
        CityData(
            R.drawable.sh,
            "上海",
            "中国东部国际大都市，金融中心，多元文化汇聚。",
            R.drawable.ikun
        ),
        CityData(R.drawable.gz, "广州", "中国南部沿海城市，经济发达，文化多元。", R.drawable.ikun),
        CityData(R.drawable.sz, "深圳", "中国南部科技创新中心，现代化城市。", R.drawable.ikun),
        CityData(R.drawable.hz, "杭州", "中国东南部历史文化名城，风景秀丽。", R.drawable.ikun),
        CityData(R.drawable.nj, "南京", "中国东部历史文化名城，教育科研中心。", R.drawable.ikun),
    )

    override fun getCount(): Int {
        return cityList.size // 总数
    }

    override fun getItem(p0: Int): Any {
        return cityList[p0]// 某一项
    }

    override fun getItemId(p0: Int): Long {
        return p0.toLong() // 标记
    }

    override fun getView(p0: Int, p1: View?, p2: ViewGroup?): View {
        val cityData = cityList[p0]
        // 将XML转为对象，通过apply去操纵内部组件的属性
        val view = View.inflate(p2?.context, R.layout.custom_base_item, null).apply {
            // 填充数据 图片，文本
            findViewById<android.widget.ImageView>(R.id.cityIcon).setImageResource(cityData.icon)
            findViewById<android.widget.TextView>(R.id.cityText).text = cityData.text
            findViewById<android.widget.TextView>(R.id.cityIntro).text = cityData.intro
            findViewById<android.widget.ImageView>(R.id.cityIkun).setImageResource(cityData.ikun)
        }
        return view
    }

}
